CWM[公共倉庫元模型的縮寫]

CWM (CommonWarehouseMetamodel公共倉庫元模型)是OMG組織在數據倉庫系統中定義了一套完整的元模型體系結構,用於數據倉庫構建和套用的元數據建模。公共倉庫元模型指定的接口,可用於啟用交換倉庫之間元數據倉庫和業務智慧型工具、倉庫平台、套用的元數據建模和倉庫元數據存儲在分散式異構環境CWM元模型由一系列子元模型構成。

簡介

CWM   (CommonWarehouseMetamodel公共倉庫元模型)是OMG組織在數據倉庫系統中定義了一套完整的元模型體系結構,用於數據倉庫構建和套用的元數據建模。公共倉庫元模型指定的接口,可用於啟用交換倉庫之間元數據倉庫和業務智慧型工具、倉庫平台、套用的元數據建模和倉庫元數據存儲在分散式異構環境CWM元模型由一系列子元模型構成,包括:資源數據元模型用於為對象型的、關係型的、記錄型的、多維的和XML等數據源建模;數據分析元模型用於為數據轉換、在線上處理分析(OLAP)、數據挖掘、結果信息可視化等分析處理結果建模;倉庫管理元模型用於為數據倉庫處理流程和操作功能進行建模。CWM主要基於以下三個工業標準【1】:

CWM[公共倉庫元模型的縮寫] CWM[公共倉庫元模型的縮寫]

UML(UnifiedModelingLanguage):統一建模語言,是OMG的一個建模標準;
MOF(MetaObjectFacility):元對象設施,是OMG關於元模型和元資料庫的標準;用來定義元數據並將其表示為CORBA對象的技術。提供在異構環境下對元資料庫的訪問接口。
XMI(XMLMetadataInterchange):XML元數據交換,是OMG關於元數據交換的標準;提供基於檔案數據流的元數據交換接口和機制。這三個標準是OMG數據倉庫元模型CWM體系結構的核心,CWM元模型直接繼承UML元模型用於數據倉庫元模型和模型的描述,CWM中的類和關聯都直接或間接繼承了UML中類的語法和語義。MOF為構建模型和元模型提供了可擴展的框架,並提供了存取元數據的程式接口(IDL/Java)【2】【3】。而利用XMI則可以將元數據轉換為標準的XML數據流或檔案的格式【4】,以便進行交換,這大大增強了CWM的通用性。
CWM為在數據倉庫領域套用MDA方法提供了有力的支持。在數據倉庫領域,CWM是定義PIM的語言,其形式是UML;PIM及PSM通常以XML文檔作為物理載體,而XMI規範保證這些XML文檔具有可理解性和可移植性;MOF保證了PIM可以順利的轉換為PSM,並由PSM轉換成代碼模型。

起源

成立於1995年的元數據聯盟Meta Data Coalition(簡稱:MDC)組織是一個由50個廠商和最終用戶組成的非贏利組織,包含CA、NCR、SAS、Microsoft等,致力於為元數據交換提供解決方案。在1999年,元數據聯盟開發了技術中立廠商無關的數據倉庫標準——開放信息模型(OIM),並由微軟公司提交。同時OMG組織在開發另一套技術中立廠商無關的通用公共倉庫元模型(CWM)。在一段時間內,存在著兩個標準。為了推動標準並使業界廣泛認同,MDC成員決定合併進OMG,並由OMG發布同一套標準CWM,MDC不再研究自己獨立的標準。同時CWM從OIM中借鑑和學習了很多設計,致力於解決數據倉庫和商業智慧型的元數據問題。OMG成立於1989年,OMG的目標是建立一種行業標準和對象管理規範來為實際軟體開發提供一個通用的構架。OMG在2000年採用了CWM。旨在推動數據倉庫、智慧型商務和知識管理方面元數據的共享和交換。和OMG合作提出CWM規範的公司有:IBM,Unisys,NCR,HyperionSolutions,Oracle,UBSAG,GenesisDevelopment,DimensionEDI。還有一些公司明確表示支持CWM,包括:Deere&Company,Sun,HP,DataAccessTechnologies,InLineSoftware,Aonix,Hitachi,Ltd。  

目標

CWM規範的最初目標是:使處於分散式、異構環境下的數據倉庫元數據和商業智慧型元數據能方便地在不同的數據倉庫工具、數據倉庫平台和元數據倉庫之間進行交換。CWM覆蓋設計、建立和管理數據倉庫套用的整個生命周期,並支持生命周期管理。CWM是迄今為止將MDA方法用於具體套用領域(數據倉庫和商業智慧型領域)的最完美的例子。隨著MDA方法論的不斷完善和CWM規範的逐漸成熟,CWM的作用不再局限於數據倉庫領域。CWM支持模型驅動的方法進行元數據交換,根據CWM元模型規範構造共享元數據的統一模型,這些統一模型是具體產品無關的,以XML文檔的格式存儲和交換【3】。
CWM主要的設計原則有以下幾個方面:
 對UML中概念的重用:UML1.3是整個CWM的設計基礎,CWM在任何可能的地方對UML中的概念進行重用,所有的CWM對象類型都直接或間接地繼承於UML,因此也繼承了它們的屬性和方法。這樣可以節省很多重複工作,並且使CWM更容易理解,所有熟悉UML的用戶都可以有一個比較高的起點;
 模組化:CWM元模型被分成許多包,以便它們分別實現並減少複雜度。具體的組成結構見下;
 通用化:CWM元模型獨立於任何具體的數據倉庫工具,但同時,它儘量多地包含了基於特定工具實現的有代表性且通用的數據倉庫特點。也就是說,只有那些多種工具共享的信息才會被CWM元模型包含進來。

組件

OMG組織不但發布了CWM規範,描述了一套完整的數據倉庫元模型對象及對象定義,同時OMG組織還發布了與CWM緊密相關的其他四個組件,如圖3-1所示。四個組件分別為:
 CWMUML類圖:CWM元模型用一套UML圖來圖形化的表示CWM元模型。
 CWMXML檔案:用XML形式描述的CWM,MOF1.3版本兼容。
 CWMDTD:CWM文檔類型定義(DTD)用來對CWM文檔進行有效性驗證。
 CWMIDL:OMG定義了一組接口定義語言(IDL)檔案,讀取元數據。 圖:OMG提供的CWM相關組件

CWM[公共倉庫元模型的縮寫] CWM[公共倉庫元模型的縮寫]

cwm

模型

CWM完整地描述了數據倉庫元數據交換的語法和語義以及用於異質平台之間的元數據交換機制。CWM元模型由一些子元模型構成,這些子元模型在如下主要數據倉庫構建方面描述出通用數據倉庫的元數據。數據源方面:這些元模型能描述面向對象的、關係型的、記錄型的、多維的和XML的源數據。在面向對象數據源方面,CWM依賴並重用UML的基礎。
數據分析方面:這些元模型能描述數據轉換、在線上處理分析(OLAP)、數據挖掘、結果信息可視 化等。
數據倉庫管理方面:這些元模型能描述數據倉庫流程和操作結果。
CWM元模型描述了數據倉庫的組成元素,用戶可以按照這些元模型開發相應的組件,比如ETL、OLAP和數據挖掘等。並為了降低複雜度和達到重用,按照上述參考方面,CWM元模型採用如下分層的方式組織包,如圖:cwm圖:CWM元模型的包結構
如圖中所示,CWM元模型主要包括四層:基礎包Foundation,資源包Resource,分析包Analysis和管理包Management。
CWM對象模型包提供了創建和描繪CWM所有其它包中的元模型類的基礎結構。對象模型包是一個UML子集,它僅僅包含創建和描述CWM類所需要的特徵。
基礎包主要定義了為CWM其它包所共享的一些基本概念和結構,它包含的子包有: BusinessInformationpackage:由面向業務的通用信息的類和相應關聯組成,比如負責人信息類等;
 DataTypespackage:定義了其它包用以創建自己所需的數據類型的元模型組件;
 Expressionspackage:定義了CWM其它包定義表達式樹所需的元模型組件;
 KeysandIndexespackage:定義了描述關鍵字和索引的共享元模型;
 SoftwareDeploymentpackage:描述一個軟體在數據倉庫中如何被使用的元模型;
 TypeMappingpackage:支持不同系統之間數據類型的映射的元模型;
資源包主要定義了一些描述常用的數據源/目標的元模型,它包含的子包有:
 Relationalpackage:描述通過關係型接口訪問的資料庫的數據模型和元模型,比如RDBMS,ODBC,JDBC等;
 Recordpackage:描述記錄的基本概念和結構的元模型,這裡記錄的概念很廣泛,它可以描述任何結構化的信息,比如資料庫的一條記錄、文檔等;
 Multidimensionalpackage:描述多維型資料庫的元模型;
 XMLpackage:描述用XML表示的數據源和數據目標;
分析包主要定義了一些描述數據倉庫工具的元模型,它包含的子包有: Transformationpackage:定義數據倉庫中抽取轉換規則的元模型,它包含對各種類型數據源之間的轉換規則的描述;
 OLAPpackage:對OLAP工具和套用進行描述,並定義了它到實際系統的映射;
 DataMiningpackage:對數據挖掘工具和套用進行描述;
 InformationVisualizationpackage:定義了問題領域中有關信息發布或者信息可視化的元模型;
 BusinessNomenclaturepackage:對業務數據進行描述,比如業務術語及其適用範圍等;
管理包主要定義了一些描述數據倉庫運行和調度信息的元模型,它包含的子包有:
 WarehouseProcesspackage:描述數據倉庫中抽取轉換規則的執行過程,也就是各個轉換規則的觸發條件;
 WarehouseOperationpackage:描述數據倉庫日常運行情況的元模型;

作用

前面已經提及,CWM規範了數據倉庫系統內的所有數據源,並可以支持數據倉庫的整個生命周期。CWM為整個數據倉庫領域指明了發展的方向。然而,如果僅僅是某個領域的元模型,CWM還不足以作為MDA的核心構成部分之一。實際上,CWM對於整個MDA框架有重大的潛在價值,接下來將詳細介紹CWM在數據倉庫領域之外的作用。
首先,CWM可以成為MDA存貯,交換數據的格式標準。CWM規範了數據倉庫的各種數據源,包括關係資料庫,記錄型數據,XML文檔,甚至包含面向對象的數據。這部分規範幾乎覆蓋了所有的數據源,同樣適用與其他領域。而且,CWM元模型是用MOF建模的,可作為MDA變換的源和目標。如使用CWM來定義數據源,有利於實現標準的,可重用的MDA變換。另外,如利用CWM來輔助MDA開發,可以有效解決元數據管理問題,提高投資回報。
其次,CWM的轉換包(Transformation)可以用於定義標準的MDA變換。CWM的轉換包定義了數據倉庫中ETL過程的元數據。與倉庫過程包(WarehouseProcess)和倉庫操作包(WarehouseOperation)結合,可以完成數據倉庫ETL過程的調度、維護、管理,這些同樣可以套用與這個MDA環境。CWM轉換不依賴於任何具體的轉換工具和實現技術,擁有良好的平台獨立性,而且支持多種數據源,適用於類型廣泛的映射。CWM轉換包中使用了某些手段,確保了轉換的精確性和擴展性。CWM轉換可以看作擴展性框架,用戶可以通過定義過程性表達式語言或復用已經定義好的語言來擴展該框架。MDA的開發者完全可以利用CWM轉換良好的形式化規約,以及CWM在數據轉換方面所積累的豐富經驗,來定義標準的MDA變換。

參考

1 ObjectManagementGroup.CommonWarehouseMetamodel(CWM)SpecificationVersion1.0.2001
2 ObjectManagementGroup.MetaObjectFacility(MOF)SpecificationVersion1.4.2002
3 JavaCommunityProcess.JSR040JavaMetadataInterchange(JMI)SpecificationVersion1.0.2002
4 ObjectManagementGroup.XMLMetadataInterchange(XMI)SpecificationVersion2.0.2003

相關詞條

熱門詞條

聯絡我們